--[[
描述 ： 资源管理
作者 ： 付大志
时间 ： 13/08/08
]]

UIImage = Class('UIImage');
UIImage.mImageSize = 0;                             -- 总大小      
UIImage.mImageArray = {};
UIImage.mImageCache = {};
UIImage.mImageDir = nil;                            -- 图片目录结构
UIImage.mScreenWidth = nil;
UIImage.mScreenHeight = nil;
  -- 宽高匹配
UIImage.mAllMatchPath    = nil;                         -- 匹配路径
UIImage.mAllMatchImgList = nil;                         -- 匹配文件列表

  -- 宽度匹配
UIImage.mWidthMatchPath    = nil;                       -- 匹配路径
UIImage.mWidthMatchImgList = nil;                       -- 匹配文件列表



--[[
功能   ：初始化res
参数   ：无
返回   ：无
]]
function UIImage.init()
	UIImage.mScreenWidth , UIImage.mScreenHeight = MLNative.deviceWH();

	UIImage.mImageDir = MLFile.loadTable (UIConfig.UIIMAGE_LIST_PATH);

	if UIImage.mImageDir == nil then
		UIImage.genImgList();
	end

	-- 初始化 适配宽度列表 后期这里做适配
	local imgDir = 'image_'..UIImage.mScreenWidth;
	for k, v in pairs(UIImage.mImageDir) do
		local match = string.find(v.dirName,imgDir);
		if match then
			UIImage.mWidthMatchPath = v.dirName;
			UIImage.mWidthMatchImgList = v.files;
		end
	end
	-- 初始化 适配高宽图片列表
	imgDir = 'image_'..UIImage.mScreenWidth..'x'..UIImage.mScreenHeight;
	for k, v in pairs(UIImage.mImageDir) do
		local match = string.find(v.dirName,imgDir);
		if match then
			UIImage.mAllMatchPath = v.dirName;
			UIImage.mAllMatchImgList = v.files;
		end
	end
	-- 查找匹配目录
end
--[[
功能   ：生成图片列表文件
参数   ：无
返回   ：无
]]
function UIImage.genImgList()
	local res = File.listFile(UIConfig.UIIMAGE_PATH ,false);
	local dirNum = 1;
	local fileNum = 1;
	UIImage.mImageDir = {}
	for k, v in pairs(res) do
	-- for k, v in pairs(res.files) do
		if v.dir then
			UIImage.mImageDir[dirNum]= {};
			UIImage.mImageDir[dirNum].dirName = v.name;
			UIImage.mImageDir[dirNum].files = {};
			imgFile = File.listFile(UIConfig.UIIMAGE_PATH..v.name..'/' ,false);
			fileNum = 1;
			-- for k1, v1 in pairs(imgFile.files) do           -- 二级查找
			for k1, v1 in pairs(imgFile) do           -- 二级查找
				if not v1.dir then
					UIImage.mImageDir[dirNum].files[v1.name] = v1.name;
					fileNum = fileNum+1;
				end
			end

			dirNum = dirNum + 1;
		end
	end
	File.saveTable (UIConfig.UIIMAGE_LIST_PATH ,UIImage.mImageDir);
end

--[[
功能   ：生成 默认路径图片 对象
参数   ：图片名称
返回   ：无
]]
function UIImage.imageName(fn)
	if not fn or fn == '' then return; end
	local path = UIConfig.UIIMAGE_DEFAULT_DIR   ;--'/res/image/'
	local imgFile, isExist = nil;
	-- print("----JY----UIImage.Image->UIImage.mAllMatchPath", UIImage.mAllMatchPath)
	-- if  UIImage.mAllMatchPath then                                      -- 先去hw匹配里面找再去w匹配找， 否则用默认的
	-- 	path =  UIConfig.UIIMAGE_PATH..UIImage.mAllMatchPath..'/';
	-- 	isExist = UIImage.mAllMatchImgList[fn];
	-- 	--  print("UIImage.Image->UIImage.mAllMatchPath111", UIImage.mAllMatchPath)
	-- 	if isExist == nil then                                       -- 找不到用默认的
	-- 		if  UIImage.mWidthMatchPath then                            -- 先去hw匹配里面找再去w匹配找， 否则用默认的
	-- 			path =  UIConfig.UIIMAGE_PATH..UIImage.mWidthMatchPath..'/';
	-- 			isExist = UIImage.mWidthMatchImgList[fn];
	-- 			if isExist == nil then   
	-- 				path = UIConfig.UIIMAGE_DEFAULT_DIR;
	-- 			end
	-- 		end
	-- 	end
	-- else 
	-- 	-- print("UIImage.Image->UIImage.mAllMatchPath22", UIImage.mAllMatchPath)
	-- 	if  UIImage.mWidthMatchPath then                            -- 先去hw匹配里面找再去w匹配找， 否则用默认的
	-- 		path =  UIConfig.UIIMAGE_PATH..UIImage.mWidthMatchPath..'/';
	-- 		isExist = UIImage.mWidthMatchImgList[fn];
	-- 		if isExist == nil then   
	-- 			path = UIConfig.UIIMAGE_DEFAULT_DIR;
	-- 		end
	-- 	end
	-- end 

	local imgpath  = path..fn;

	if UIImage.mImageCache[imgpath] then return UIImage.mImageCache[imgpath] end
	local img = MLImage.new():initImage(imgpath);
	UIImage.mImageCache[imgpath] = img;
	-- print('----JY----new image------', img, imgpath);
	return img;
   
 end

--[[
功能   ：生成 全路径图片 对象
参数   ：fn -- 图片名称
返回   ：无
]]
function UIImage.imageFile(imgpath)
	if not imgpath or imgpath == '' then return end
	if UIImage.mImageCache[imgpath] then return UIImage.mImageCache[imgpath] end
	local img = MLImage.new():initImage(imgpath);
	UIImage.mImageCache[imgpath] = img;
	return img;
  
end

setmetatable(UIImage.mImageCache, {__index='kv'});







